import subprocess
import datetime
import os
# 设置显示环境变量
os.environ['DISPLAY'] = ':0'
os.environ['XAUTHORITY'] = '/home/w-dingyu01@uos/.Xauthority'
def send_notification():
    title = "警告提醒"
    message = f"预定时间提醒 - {datetime.datetime.now().strftime('%H:%M')}"
    
    try:
        subprocess.Popen([
            'notify-send', 
            title, 
            message,
            '--icon=dialog-warning',
            '--urgency=critical'
        ])
        print(f"通知已发送: {message}")
    except Exception as e:
        print(f"发送通知失败: {e}")

#file:/home/w-dingyu01@uos/dy外网/My_model/pygame测试/desk.py
import subprocess
import datetime
import sys

def send_persistent_notification():
    """
    发送持续显示的通知，直到用户确认
    """
    title = "下班提醒"
    message = "请记得登记工时和打卡！"
    
    try:
        # 使用zenity创建一个持续显示的对话框
        result = subprocess.run([
            'zenity', 
            '--question',
            '--title', title,
            '--text', message + '\n\n请确认已完成以下步骤:\n1. 打开工时系统\n2. 登记今日工作内容\n3. 确认提交\n4. 打卡下班',
            '--ok-label', '已完成，确认关闭',
            '--cancel-label', '稍后提醒我',
            '--icon-name=dialog-warning'
        ])
        
        # 如果用户点击"已完成，确认关闭"(返回码0)，则退出
        if result.returncode == 0:
            print("用户已确认完成下班流程")
            return True
        else:
            print("用户选择稍后提醒")
            return False
            
    except FileNotFoundError:
        # 如果没有zenity，使用notify-send作为备选方案
        print("未找到zenity，使用notify-send作为备选")
        try:
            subprocess.Popen([
                'notify-send', 
                title, 
                message + '\n\n请确认已完成以下步骤:\n1. 打开工时系统\n2. 登记今日工作内容\n3. 确认提交\n4. 打卡下班',
                '--icon=dialog-warning',
                '--urgency=critical',
                '--expire-time=0'  # 永不超时
            ])
            print(f"通知已发送: {message}")
            return False
        except Exception as e:
            print(f"发送通知失败: {e}")
            return False
    except Exception as e:
        print(f"发送持续通知失败: {e}")
        return False
def send_simple_notification():
    """
    发送简单的临时通知（不阻塞）
    """
    title = "⏰ 提醒"
    message = f"预定时间提醒 - {datetime.datetime.now().strftime('%H:%M')}"
    
    try:
        subprocess.Popen([
            'notify-send', 
            title, 
            message,
            '--icon=dialog-information',
            '--urgency=normal',
            '--expire-time=5000'  # 5秒后自动消失
        ])
        print(f"简单通知已发送: {message}")
    except Exception as e:
        print(f"发送简单通知失败: {e}")
if __name__ == "__main__":
    send_persistent_notification()
    # send_notification()
    # send_simple_notification()